<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<title>Navigation page for Inbuild</title>
<link href="docs-assets/Breadcrumbs.css" rel="stylesheet" rev="stylesheet" type="text/css">
		<meta name="viewport" content="width=device-width initial-scale=1">
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
		<meta http-equiv="Content-Language" content="en-gb">

<link href="docs-assets/Contents.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="docs-assets/Progress.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="docs-assets/Navigation.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="docs-assets/Fonts.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="docs-assets/Base.css" rel="stylesheet" rev="stylesheet" type="text/css">
<link href="docs-assets/Colours.css" rel="stylesheet" rev="stylesheet" type="text/css">
		
	</head>
	<body class="commentary-font">
		<nav role="navigation">
		<h1><a href="index.html"><img src="docs-assets/Inform.png" height=72> </a></h1>
<ul><li><a href="index.html"><span class="selectedlink">home</span></a></li>
</ul><h2>Compiler</h2><ul>
<li><a href="structure.html">structure</a></li>
<li><span class="unlink">inbuild</span></li>
<li><a href="inform7n.html">inform7</a></li>
<li><a href="intern.html">inter</a></li>
<li><a href="services.html">services</a></li>
<li><a href="secrets.html">secrets</a></li>
</ul><h2>Other Tools</h2><ul>
<li><a href="inblorbn.html">inblorb</a></li>
<li><a href="inform6.html">inform6</a></li>
<li><a href="inpolicyn.html">inpolicy</a></li>
</ul><h2>Resources</h2><ul>
<li><a href="extensions.html">extensions</a></li>
<li><a href="kits.html">kits</a></li>
</ul><h2>Repository</h2><ul>
<li><a href="https://github.com/ganelson/inform"><img src="docs-assets/github.png" height=0> github</a></li>
</ul><h2>Related Projects</h2><ul>
<li><a href="https://github.com/ganelson/inweb"><img src="docs-assets/github.png" height=0> inweb</a></li>
<li><a href="https://github.com/ganelson/intest"><img src="docs-assets/github.png" height=0> intest</a></li>
</ul>
		</nav>
		<main role="main">
		<!-- Weave of 'Navigation page for Inbuild' generated by inweb -->
<div class="breadcrumbs">
    <ul class="crumbs"><li><a href="index.html">Home</a></li><li><b>Navigation page for Inbuild</b></li></ul></div>
<p class="commentary firstcommentary"><a id="SP1" class="paragraph-anchor"></a><b>&#167;1. </b>Inbuild is Stage 1 of the core Inform compiler, but can also be run as a
stand-alone tool. See <a href="structure.html" class="internal">structure</a> for the bigger picture: Inbuild handles
only this part of the compilation flow &mdash;
</p>

<pre class="displayed-code all-displayed-code code-font">
<span class="plain-syntax">    </span><span class="element-syntax">main</span><span class="plain-syntax"> </span><span class="element-syntax">source</span><span class="plain-syntax"> </span><span class="element-syntax">text</span><span class="plain-syntax">   </span><span class="element-syntax">extension</span><span class="plain-syntax"> </span><span class="element-syntax">source</span><span class="plain-syntax"> </span><span class="element-syntax">texts</span>
<span class="plain-syntax">          \           /</span>
<span class="plain-syntax">           \         /  </span><span class="function-syntax">INFORM7</span><span class="plain-syntax"> </span><span class="element-syntax">Stage</span><span class="plain-syntax"> </span><span class="constant-syntax">1</span><span class="plain-syntax"> </span><span class="element-syntax">or</span><span class="plain-syntax"> </span><span class="function-syntax">INBUILD</span>
<span class="plain-syntax">            \       /</span>
<span class="plain-syntax">            \|/   \|/</span>
<span class="plain-syntax">           </span><span class="element-syntax">syntax</span><span class="plain-syntax"> </span><span class="element-syntax">tree</span>
</pre>
<p class="commentary">Used as a stand-alone tool at the command line, however, Inbuild is more
flexible and interesting. See the <a href="inbuild/M-ui.html" class="internal">Manual (in inbuild)</a> and <a href="inbuild/M-rc.html" class="internal">Reference Card (in inbuild)</a>.
</p>

<ul class="items"><li>&#9679; The contents page for the Inbuild web is here: <a href="inbuild/index.html" class="internal">inbuild</a>.
</li><li>&#9679; The command-line interface for Inbuild as a stand-alone tool is implemented
at <a href="inbuild/1-mn.html" class="internal">Main (in inbuild)</a>.
</li></ul>
<p class="commentary firstcommentary"><a id="SP2" class="paragraph-anchor"></a><b>&#167;2. </b>The <a href="supervisor-module/index.html" class="internal">supervisor</a> module does all of the real work. Given a project to build,
it decides what resources are needed &mdash; for example, extensions or kits &mdash; and
forms a dependency graph between them. It then attempts to traverse that graph,
building each resource in turn as necessary.
</p>

<p class="commentary">To do all this, <a href="supervisor-module/index.html" class="internal">supervisor</a> must also be a filing clerk, managing "nests" of
resources and worrying about semantic version numbers. Since that requires looking
at source text for extensions and Inform projects, the supervisor is therefore
also the part of Inform which uses the <a href="syntax-module/index.html" class="internal">syntax</a> service to read text in to
the syntax tree.
</p>

<ul class="items"><li>&#9679; Contents page of web: <a href="supervisor-module/index.html" class="internal">supervisor</a>.
</li><li>&#9679; Detailed overview: <a href="supervisor-module/P-wtmd.html" class="internal">What This Module Does (in supervisor)</a>.
</li></ul>
<p class="commentary firstcommentary"><a id="SP3" class="paragraph-anchor"></a><b>&#167;3. </b>Inbuild also contains the basic <a href="foundation/index.html" class="internal">foundation</a> library and some <a href="services.html" class="internal">services</a>
modules: specifically, <a href="words-module/index.html" class="internal">words</a>, <a href="syntax-module/index.html" class="internal">syntax</a>, <a href="html-module/index.html" class="internal">html</a> and <a href="arch-module/index.html" class="internal">arch</a>.
</p>

<!-- End of weave -->

		</main>
	</body>
</html>

